package com.ruoyi.system.service;

import java.util.List;

import com.ruoyi.system.domain.PetType;
import com.ruoyi.system.domain.PetVariety;
import org.springframework.web.multipart.MultipartFile;
import com.ruoyi.system.domain.Pet;
import com.ruoyi.system.domain.dto.PetRecognitionResult;

/**
 * 宠物服务接口
 */
public interface IPetService {
    /**
     * 查询宠物列表
     *
     * @param pet 宠物信息
     * @return 宠物集合
     */
    public List<Pet> selectPetList(Pet pet);

    /**
     * 查询宠物信息
     *
     * @param id 宠物ID
     * @return 宠物信息
     */
    public Pet selectPetById(Long id);

    /**
     * 新增宠物
     *
     * @param pet 宠物信息
     * @return 结果
     */
    public int insertPet(Pet pet);

    /**
     * 修改宠物信息
     *
     * @param pet 宠物信息
     * @return 结果
     */
    public int updatePet(Pet pet);

    /**
     * 删除宠物信息
     *
     * @param id 宠物ID
     * @return 结果
     */
    public int deletePetById(Long id);

    /**
     * 批量删除宠物信息
     *
     * @param ids 需要删除的宠物ID数组
     * @return 结果
     */
    public int deletePetByIds(Long[] ids);

    /**
     * 宠物识别
     *
     * @param file 宠物图片文件
     * @return 识别结果
     */
    public PetRecognitionResult recognizePet(MultipartFile file);

    String uploadFile(MultipartFile file);

    //获取
    List<PetType> getType();

    List<PetVariety> getPetVariety(Integer tId);

    Pet getPetInfo(Integer uid);

    Object recognizeEmotion(MultipartFile file);

    /**
     * 图像合成
     *
     * @param baseImage 基础图片
     * @param maskImage 蒙版图片
     * @param prompt 提示文本
     * @return 合成结果
     */
    Object imageSynthesis(MultipartFile baseImage, MultipartFile maskImage, String prompt);

    PetType getPetTypeById(Long tId);

    PetVariety getPetVarietyById(Long vId);
}
